package com.zxtc.wh.pojo;

/**
 * 基础的网络请求返回值的Bean类型
 * 2017年4月8日16:02:25
 */
public class Result<T> {
    /**
     * 返回码，标示了响应的具体状态，类似http请求中的404,201
     */
    public Integer responseCode;
    /**
     * 附加的消息，以文字解释{@see #responseCode}响应状态码的含义
     * 但是要注意，当前字段是附加的解释消息，仅供参考，不保证必然是存在、正确、有意义的，以{@see #responseCode}为准。
     */
    public String message;
    /**
     * 返回数据
     */
    public T data;

    /**
     * 响应的数据的类型，即{@see data}的类型
     * 此字段仅备用
     */
    public String response_data_type;

    /**
     * 检查判断服务器是否有效的返回了数据，返回的数据可能表示请求成功、请求失败、服务器错误等等各种情况
     *
     * @return 如果有效的返回了数据，则为true
     */
    public static <T> boolean isResult(Result<T> response) {
        return response != null && response.responseCode != null && response.data != null;
    }

    @Override
    public String toString() {
        return "Result{" +
                "responseCode=" + responseCode +
                ", message='" + message + '\'' +
                ", data=" + data +
                ", response_data_type='" + response_data_type + '\'' +
                '}';
    }

    public Integer getResponseCode() {
        return responseCode;
    }

    public void setResponseCode(Integer responseCode) {
        this.responseCode = responseCode;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    public String getResponse_data_type() {
        return response_data_type;
    }

    public void setResponse_data_type(String response_data_type) {
        this.response_data_type = response_data_type;
    }
}
